/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.team1160.breakaway.stateManager;

import com.team1160.breakaway.exceptions.TargetNotSeenException;

/**
 *This interface is the blueprint for the "Boss class" which tells the individual components
 * (Kicker, Drive, Dribbler, Robot) what to do.
 * @author Team 1160 Firebird Robotics 
 */
public interface TaskManager {




    
    /**
     * sets left drivetrain values to lValue and right drivetrain values to rValue
     * @param move the forward movement speed
     * @param turn the turn rate
     */
    void drive(double move, double turn);
    
    /**
     * starts or stops dribbler depending on value
     * @param value true starts dribbler and false stops it
     */
    void setDribbler(boolean value);

    /**
     * fires kicker
     */
    void shoot();
    
    /**
     * moves robot to face the target
     * @throws TargetNotSeenException
     */
    void orientToTarget() throws TargetNotSeenException;

}
